Names (sometimes also referred to as identifiers) play an important role in all computer systems. They are used to share resources, to uniquely identify entities, to point locations, and more. An important consequence of naming is that the name can be resolved as to the entity it points to. Thus, name resolution allows programming process or threads to access the named entity. To resolve names, a naming system is needed.
The difference between naming in a distributed system and naming in a non-distributed system lies in how the naming system is implemented. Many of today's applications, such as some file naming systems and the World Wide Web, are based on a distributed naming scheme. Either the current Internet or any new network in the future will need a structured naming scheme based on a distributed system to resolve the various entities involved in the network. Domain name system (DNS) is a naming system used by the Internet to convert human-friendly (e.g., human-readable) machine or domain names into IP addresses. The DNS uses a hierarchical tree structured naming schemes, where the second highest domain names (the domain names below the root domain name) are top-level domain.